package com.zzz.four;

import java.util.Scanner;

/*
 * @author zzr
 * @date: 2025/07/10  22:43
 * @description:Fibonacci数列:0,1,1,2,3,5,8,13..在Fibonacci数列中的数称为Fibonacci数。
 * 现在有一个 n，需要将它变为一个Fibonacci数，每一步可以当前数字加1 或者减 1。
 * 求最少需要多少步将 n 变为Fibonacci数?
 */
public class Demo1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();

        // 初始化数列的前两个数
        int a = 0;
        int b = 1;

        while (b <= n) {
            int next = a + b;
            a = b;
            b = next;
        }

        // 计算 n 举例前后两个数字的位置
        int diff1 = b - n;
        int diff2 = n - a;

        System.out.println(Math.min(diff1,diff2));
    }
}
